﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Imports EVOLTA.Promocion.Bl.Ctrl
Imports System.IO
Imports System.Web.Services
Imports System.Web.Services.Protocols
Partial Class mantenedores_cliente
    Inherits System.Web.UI.Page
    Implements System.Web.UI.ICallbackEventHandler

    Private clientes As List(Of Ecliente) = Nothing
    Private conyugues As List(Of Ecliente) = Nothing
    Dim expression As String = Nothing
    Dim direction As SortDirection = SortDirection.Ascending

#Region "          Formulario                               "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        'Dim script As String = "<script languaje=\'javascript\'>limpiarControles();</script>"
        'ClientScript.RegisterStartupScript(Me.GetType(), "IMPRESO", script)
        hdfIdUsuario.Value = Me.Master.idUsuario
        hdfNuevo.Value = "nuevo"
        hdfEmpresa.Value = Me.Master.descEmpresa.Trim

        btnAgregar.Attributes.Add("onclick", "MuestraPanel(); return false;")
        If Not IsPostBack Then
            'departamentos()
            ddlProvincia.Items.Add(New ListItem("-- SELECCIONE --", "0"))
            ddlDistrito.Items.Add(New ListItem("-- SELECCIONE --", "0"))
            ddlDepartamento.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00$ContentPlaceHolder1$ddlDistrito').length=1;document.getElementById('ctl00$ContentPlaceHolder1$ddlProvincia').length=1;} else {document.getElementById('ctl00$ContentPlaceHolder1$ddlDistrito').length=1;CallTheServer('divddlProvincia@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            ddlProvincia.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00$ContentPlaceHolder1$ddlDistrito').length=1;}else CallTheServer('divddlDistrito@TN@' + document.getElementById('ctl00$ContentPlaceHolder1$ddlDepartamento').value + this.options[this.selectedIndex].value + '00');return false;")

            ddlProvinciaLaboral.Items.Add(New ListItem("-- SELECCIONE --", "00"))
            ddlDistritoLaboral.Items.Add(New ListItem("-- SELECCIONE --", "00"))
            ddlDepartamentoLaboral.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00$ContentPlaceHolder1$ddlDistritoLaboral').length=1;document.getElementById('ctl00$ContentPlaceHolder1$ddlProvinciaLaboral').length=1;} else {document.getElementById('ctl00$ContentPlaceHolder1$ddlDistritoLaboral').length=1;CallTheServer('divddlProvinciaLaboral@TN@' + this.options[this.selectedIndex].value + '00')};return false;")
            ddlProvinciaLaboral.Attributes.Add("onchange", "if (this.options[this.selectedIndex].value == '00') {document.getElementById('ctl00$ContentPlaceHolder1$ddlDistritoLaboral').length=1;}else CallTheServer('divddlDistritoLaboral@TN@' + document.getElementById('ctl00$ContentPlaceHolder1$ddlDepartamentoLaboral').value + this.options[this.selectedIndex].value + '00');return false;")

            'btnBuscar.Attributes.Add("onclick", "CallTheServer('divBuscar@' + document.getElementById('ctl00$ContentPlaceHolder1$txtBuscar').value);")
        End If

        Dim cbReference As String
        cbReference = Page.ClientScript.GetCallbackEventReference(Me, "arg", "ReceiveServerData", "null", True)


        Dim callbackScript As String = ""
        callbackScript &= "function CallTheServer(arg)" & _
                          "{" & cbReference & "; }"

        Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "CallTheServer", callbackScript, True)
    End Sub
    Private Function tpoDcmtos(ByVal pTpoDocmnto As List(Of EtpoDcmto)) As String
        Dim srCliente As New System.IO.StringWriter()
        Dim htmCliente As New HtmlTextWriter(srCliente)

        Me.selTpoDcmto.DataSource = pTpoDocmnto
        Me.selTpoDcmto.DataTextField = "descTpoDcmto"
        Me.selTpoDcmto.DataValueField = "idTpoDcmto"
        Me.selTpoDcmto.DataBind()
        Me.selTpoDcmto.RenderControl(htmCliente)
        htmCliente.Flush()

        Dim srConyugue As New System.IO.StringWriter()
        Dim htmConyugue As New HtmlTextWriter(srConyugue)

        Me.selTpoDcmtoConyuge.DataSource = pTpoDocmnto
        Me.selTpoDcmtoConyuge.DataTextField = "descTpoDcmto"
        Me.selTpoDcmtoConyuge.DataValueField = "idTpoDcmto"
        Me.selTpoDcmtoConyuge.DataBind()
        Me.selTpoDcmtoConyuge.RenderControl(htmConyugue)
        htmConyugue.Flush()

        Dim srApoderado As New System.IO.StringWriter()
        Dim htmApoderado As New HtmlTextWriter(srApoderado)

        Me.selTpoDocmentoApoderado.DataSource = pTpoDocmnto
        Me.selTpoDocmentoApoderado.DataTextField = "descTpoDcmto"
        Me.selTpoDocmentoApoderado.DataValueField = "idTpoDcmto"
        Me.selTpoDocmentoApoderado.DataBind()
        Me.selTpoDocmentoApoderado.RenderControl(htmApoderado)
        htmApoderado.Flush()

        Return srCliente.ToString() + "|" + srConyugue.ToString() + "|" + srApoderado.ToString()
    End Function
    Private Function sexos() As String
        Dim srCliente As New System.IO.StringWriter()
        Dim htmCliente As New HtmlTextWriter(srCliente)

        Dim Esexo As New Ecommons
        Me.selSexo.DataSource = Esexo.sexo
        Me.selSexo.DataTextField = "descripcion"
        Me.selSexo.DataValueField = "codigo"
        Me.selSexo.DataBind()
        Me.selSexo.RenderControl(htmCliente)
        htmCliente.Flush()

        Dim srConyugue As New System.IO.StringWriter()
        Dim htmConyugue As New HtmlTextWriter(srConyugue)

        Dim EsexoConyuge As New Ecommons
        Me.selSexoConyuge.DataSource = EsexoConyuge.sexo
        Me.selSexoConyuge.DataTextField = "descripcion"
        Me.selSexoConyuge.DataValueField = "codigo"
        Me.selSexoConyuge.DataBind()
        Me.selSexoConyuge.RenderControl(htmConyugue)
        htmConyugue.Flush()

        Return srCliente.ToString() + "|" + srConyugue.ToString()
    End Function
    Private Function ocupacions(ByVal pOcupacions As List(Of Eocupacion)) As String
        Dim srCliente As New System.IO.StringWriter()
        Dim htmCliente As New HtmlTextWriter(srCliente)

        Me.selOcupacion.DataSource = pOcupacions
        Me.selOcupacion.DataTextField = "descocupacion"
        Me.selOcupacion.DataValueField = "idocupacion"
        Me.selOcupacion.DataBind()
        Me.selOcupacion.RenderControl(htmCliente)
        htmCliente.Flush()

        Dim srApoderado As New System.IO.StringWriter()
        Dim htmApoderado As New HtmlTextWriter(srApoderado)

        Me.selOcupacionApoderado.DataSource = pOcupacions
        Me.selOcupacionApoderado.DataTextField = "descocupacion"
        Me.selOcupacionApoderado.DataValueField = "idocupacion"
        Me.selOcupacionApoderado.DataBind()
        Me.selOcupacionApoderado.RenderControl(htmApoderado)
        htmApoderado.Flush()

        Return srCliente.ToString() + "|" + srApoderado.ToString()
    End Function
    Private Function departamentos(ByVal ubigeos As List(Of Eubigeo)) As String
        Dim srCliente As New System.IO.StringWriter()
        Dim htmCliente As New HtmlTextWriter(srCliente)

        Me.ddlDepartamento.DataSource = ubigeos
        Me.ddlDepartamento.DataTextField = "descripcion"
        Me.ddlDepartamento.DataValueField = "idUbigeo"
        Me.ddlDepartamento.DataBind()
        Me.ddlDepartamento.RenderControl(htmCliente)
        htmCliente.Flush()

        Dim srClienteLaboral As New System.IO.StringWriter()
        Dim htmClienteLaboral As New HtmlTextWriter(srClienteLaboral)

        Me.ddlDepartamentoLaboral.DataSource = ubigeos
        Me.ddlDepartamentoLaboral.DataTextField = "descripcion"
        Me.ddlDepartamentoLaboral.DataValueField = "idUbigeo"
        Me.ddlDepartamentoLaboral.DataBind()
        Me.ddlDepartamentoLaboral.RenderControl(htmClienteLaboral)
        htmClienteLaboral.Flush()

        Return srCliente.ToString() + "|" + srClienteLaboral.ToString()
    End Function
    Private Sub cargarDepartamento()
        Dim ubigeos As List(Of Eubigeo) = Nothing
    End Sub
    Private Function provincias(ByVal control As String, ByVal enabled As String, ByVal pIdUbigeo As String) As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)

        If control.Equals("divddlProvincia") Then
            Me.ddlProvincia.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, pIdUbigeo.Substring(0, 2))
            Me.ddlProvincia.DataTextField = "descripcion"
            Me.ddlProvincia.DataValueField = "idUbigeo"
            Me.ddlProvincia.DataBind()
            Me.ddlProvincia.Value = pIdUbigeo.Substring(2, 2)
            If enabled.Substring(0, 1).Equals("F") AndAlso Not enabled.Substring(1, 1).Equals("N") Then
                Me.ddlProvincia.Disabled = True
            Else
                Me.ddlProvincia.Disabled = False
            End If
            Me.ddlProvincia.RenderControl(htm)
        ElseIf control.Equals("divddlProvinciaLaboral") Then
            Me.ddlProvinciaLaboral.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, pIdUbigeo.Substring(0, 2))
            Me.ddlProvinciaLaboral.DataTextField = "descripcion"
            Me.ddlProvinciaLaboral.DataValueField = "idUbigeo"
            Me.ddlProvinciaLaboral.DataBind()
            Me.ddlProvinciaLaboral.Value = pIdUbigeo.Substring(2, 2)
            If enabled.Substring(0, 1).Equals("F") AndAlso Not enabled.Substring(1, 1).Equals("N") Then
                Me.ddlProvinciaLaboral.Disabled = True
            Else
                Me.ddlProvinciaLaboral.Disabled = False
            End If
            Me.ddlProvinciaLaboral.RenderControl(htm)
        End If
        htm.Flush()

        Return sr.ToString()
    End Function
    Private Function distritos(ByVal control As String, ByVal enabled As String, ByVal pIdUbigeo As String) As String
        Dim sr As New System.IO.StringWriter()
        Dim htm As New HtmlTextWriter(sr)

        If control.Equals("divddlDistrito") Then
            Me.ddlDistrito.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, pIdUbigeo.Substring(0, 2), pIdUbigeo.Substring(2, 2))
            Me.ddlDistrito.DataTextField = "descripcion"
            Me.ddlDistrito.DataValueField = "idUbigeo"
            Me.ddlDistrito.DataBind()
            Me.ddlDistrito.Value = pIdUbigeo.Substring(4, 2)
            If enabled.Substring(0, 1).Equals("F") AndAlso Not enabled.Substring(1, 1).Equals("N") Then
                Me.ddlDistrito.Disabled = True
            Else
                Me.ddlDistrito.Disabled = False
            End If
            Me.ddlDistrito.RenderControl(htm)
        ElseIf control.Equals("divddlDistritoLaboral") Then
            Me.ddlDistritoLaboral.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, pIdUbigeo.Substring(0, 2), pIdUbigeo.Substring(2, 2))
            Me.ddlDistritoLaboral.DataTextField = "descripcion"
            Me.ddlDistritoLaboral.DataValueField = "idUbigeo"
            Me.ddlDistritoLaboral.DataBind()
            Me.ddlDistritoLaboral.Value = pIdUbigeo.Substring(4, 2)
            If enabled.Substring(0, 1).Equals("F") AndAlso Not enabled.Substring(1, 1).Equals("N") Then
                Me.ddlDistritoLaboral.Disabled = True
            Else
                Me.ddlDistritoLaboral.Disabled = False
            End If
            Me.ddlDistritoLaboral.RenderControl(htm)
        End If
        htm.Flush()

        Return sr.ToString()
    End Function
    'Private Function Buscar(ByVal filtro As String) As IEnumerable(Of Ecliente)
    '    Dim Lclientes As System.Collections.Generic.IEnumerable(Of Ecliente) = Nothing
    '    clientes = Session("lista")
    '    If Not clientes Is Nothing Then
    '        If filtro.Length > 0 Then
    '            Dim x As Int32 = Asc(filtro.Substring(0, 1).Trim)
    '            If x >= 48 AndAlso x <= 57 Then
    '                filtro = CType(filtro, Int32)
    '                Lclientes = From c In clientes _
    '                            Where c.idCliente = filtro _
    '                            Select c
    '                Return Lclientes
    '            Else
    '                Lclientes = From c In clientes _
    '                            Where c.NombresCompletos Like "*" + filtro + "*" _
    '                            Select c
    '            End If
    '        Else
    '            Lclientes = From c In clientes _
    '                        Where c.NombresCompletos Like "*" + filtro + "*" _
    '                        Select c
    '        End If
    '    End If
    '    Return Lclientes
    'End Function
    'Protected Sub lnkBtn_Command(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs) _
    'Handles lnkBtnCodigo.Command, lnkBtnNombre.Command, lnkBtnTelefono.Command, lnkBtnEmail.Command, lnkBtnEstado.Command
    '    Dim clientes As IEnumerable(Of Ecliente) = Buscar(txtBuscar.Value.ToUpper.Trim)

    '    If Not clientes Is Nothing Then
    '        Select Case e.CommandName
    '            Case "idCliente"
    '                Dim List = From d In clientes _
    '                           Order By d.idCliente _
    '                           Select d
    '                gvwLista.DataSource = List
    '                gvwLista.DataBind()
    '            Case "NombresCompletos" : expression = e.CommandArgument
    '                Dim List = From d In clientes _
    '                           Order By d.NombresCompletos _
    '                           Select d
    '                gvwLista.DataSource = List
    '                gvwLista.DataBind()
    '            Case "telefonos" : expression = e.CommandArgument
    '                Dim List = From d In clientes _
    '                           Order By d.Telefonos _
    '                           Select d
    '                gvwLista.DataSource = List
    '                gvwLista.DataBind()
    '            Case "email" : expression = e.CommandArgument
    '                Dim List = From d In clientes _
    '                           Order By d.email _
    '                           Select d
    '                gvwLista.DataSource = List
    '                gvwLista.DataBind()
    '            Case "descEstado" : expression = e.CommandArgument
    '                Dim List = From d In clientes _
    '                           Order By d.estado _
    '                           Select d
    '                gvwLista.DataSource = List
    '                gvwLista.DataBind()
    '        End Select
    '    End If
    'End Sub
    Protected Sub gvwLista_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwLista.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            'e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwLista, "Select$" + e.Row.RowIndex.ToString)
            'e.Row.Attributes.Add("OnClick", "CallTheServer('showDet@" + e.Row.RowIndex.ToString + "');")
            'e.Row.Attributes.Add("OnClick", "CallTheServer('showDet@" + DirectCast(DirectCast(DirectCast(e.Row, System.Web.UI.WebControls.GridViewRow).DataItem, System.Object), EVOLTA.Promocion.Bl.Be.Ecliente).idRelacion.ToString + "');")
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    'Protected Sub gvwLista_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvwLista.PageIndexChanging
    '    clientes = Session("lista")
    '    Dim listaClientes = From c In clientes _
    '                        Where c.idTpoPersona = 1 _
    '                        Select c
    '    If Not clientes Is Nothing Then
    '        Me.gvwLista.DataSource = listaClientes
    '        Me.gvwLista.PageIndex = e.NewPageIndex
    '        Me.gvwLista.DataBind()
    '        'upCliente.Update()
    '    End If        
    'End Sub
    Private Function obttenerEdit(ByVal pLClientes As System.Linq.IOrderedEnumerable(Of Ecliente)) As String
        Dim datos As New StringBuilder
        datos.Append(pLClientes.ElementAt(0).idCliente.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).EtpoDcmto.idTpoDcmto.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).nroDocumento.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).edad.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).nombre.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).apePaterno.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).apeMaterno.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).fchNacimineto.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).EestadoCivil.idEstCivil.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).nroDependientes.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).sexo.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).Eestudio.idEstudio.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).nacionalidad.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).telefonoFijo.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).telefonoCelular.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).email.Trim + "|")

        datos.Append(pLClientes.ElementAt(0).Eubigeo.idUbigeo.Substring(0, 2).Trim + "|")

        datos.Append(provincias("divddlProvincia", "T", pLClientes.ElementAt(0).Eubigeo.idUbigeo.Trim) + "|")
        'datos.Append(pLClientes.ElementAt(0).Eubigeo.idUbigeo.Substring(2, 2).Trim + "|")

        datos.Append(distritos("divddlDistrito", "T", pLClientes.ElementAt(0).Eubigeo.idUbigeo.Trim) + "|")
        'datos.Append(pLClientes.ElementAt(0).Eubigeo.idUbigeo.Substring(4, 2).Trim + "|")

        datos.Append(pLClientes.ElementAt(0).urbanizacion.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).direccion.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).nroPartida.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).estado.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).Eprofesion.idProfesion.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).Eocupacion.idOcupacion.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).ruc.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).razonSocial.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).giro.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).EubigeoLaboral.idUbigeo.Substring(0, 2).Trim + "|")

        datos.Append(provincias("divddlProvinciaLaboral", "T", pLClientes.ElementAt(0).EubigeoLaboral.idUbigeo.Trim) + "|")
        'datos.Append(pLClientes.ElementAt(0).EubigeoLaboral.idUbigeo.Substring(2, 2).Trim + "|")

        datos.Append(distritos("divddlDistritoLaboral", "T", pLClientes.ElementAt(0).EubigeoLaboral.idUbigeo.Trim) + "|")
        'datos.Append(pLClientes.ElementAt(0).EubigeoLaboral.idUbigeo.Substring(4, 2).Trim + "|")

        datos.Append(pLClientes.ElementAt(0).urbanizacionLaboral.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).direccionLaboral.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).telefonoLaboral.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).telefonoLaboral2.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).puesto.Trim + "|")
        datos.Append(pLClientes.ElementAt(0).antiguedadLaboral.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).ingresos.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).idTpoPersona.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).Nombres.ToString + "|")
        datos.Append(pLClientes.ElementAt(0).OtroDocumento.ToString + "|")

        If pLClientes.Count > 1 Then
            datos.Append("|" + pLClientes.ElementAt(1).idCliente.ToString + "|")
            datos.Append(pLClientes.ElementAt(1).EtpoDcmto.idTpoDcmto.ToString + "|")
            datos.Append(pLClientes.ElementAt(1).nroDocumento.Trim + "|")
            datos.Append(pLClientes.ElementAt(1).sexo.ToString + "|")
            datos.Append(pLClientes.ElementAt(1).nombre.Trim + "|")
            datos.Append(pLClientes.ElementAt(1).apePaterno.Trim + "|")
            datos.Append(pLClientes.ElementAt(1).apeMaterno.Trim + "|")
            datos.Append(pLClientes.ElementAt(1).fchNacimineto.Trim + "|")
            datos.Append(pLClientes.ElementAt(1).telefonoFijo.Trim + "|")
            datos.Append(pLClientes.ElementAt(1).email.Trim)
        End If

        If pLClientes.Count > 2 Then
            datos.Append("|" + pLClientes.ElementAt(2).idCliente.ToString + "|")
            datos.Append(pLClientes.ElementAt(2).EtpoDcmto.idTpoDcmto.ToString + "|")
            datos.Append(pLClientes.ElementAt(2).nroDocumento.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).sexo.ToString + "|")
            datos.Append(pLClientes.ElementAt(2).nombre.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).apePaterno.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).apeMaterno.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).nacionalidad.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).email.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).telefonoFijo.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).telefonoCelular.Trim + "|")
            datos.Append(pLClientes.ElementAt(2).Eocupacion.idOcupacion.ToString + "|")
            datos.Append(pLClientes.ElementAt(2).nroPartida.Trim)
        End If
        datos.Append(pLClientes.ElementAt(0).razonSocialLaboral.ToString)
        Dim wretorno As String = datos.ToString()
        Return wretorno
    End Function
    <System.Web.Services.WebMethod(EnableSession:=True, cacheduration:=70)> _
    <System.Web.Script.Services.ScriptMethod()> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Ecliente))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(EtpoDcmto))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(EestadoCivil))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eestudio))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eubigeo))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eprofesion))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Eocupacion))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(Ecorredora))> _
    <System.Web.Script.Services.GenerateScriptType(GetType(EseparacionVenta))> _
    Public Shared Function btnGrabar(ByVal pCliente As Ecliente, ByVal pConyugue As Ecliente, ByVal pApoderado As Ecliente, _
                                     ByVal pNuevo As String, ByVal pEmpresa As String) As String
        Dim resultado As Boolean = False
        If pApoderado.nombre Is Nothing AndAlso pApoderado.apePaterno Is Nothing AndAlso pApoderado.apeMaterno Is Nothing Then
            pApoderado = Nothing
        End If
        If pCliente.EestadoCivil.idEstCivil <> 2 OrElse pConyugue.nombre Is Nothing OrElse _
           pConyugue.apePaterno Is Nothing OrElse pConyugue.apeMaterno Is Nothing Then
            pConyugue = Nothing
        End If

        If pNuevo = "nuevo" Then
            resultado = Ccliente.Añadir(pEmpresa, pCliente, pApoderado, pConyugue)
        Else
            resultado = Ccliente.Editar(pEmpresa, pCliente, pApoderado, pConyugue)
        End If

        Return resultado.ToString
    End Function
#End Region

#Region "          CallBack                                 "
    Private _callbackArgument As String
    Public Function GetCallbackResult() As String Implements System.Web.UI.ICallbackEventHandler.GetCallbackResult
        Return _callbackArgument
    End Function
    Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
        Try
            If eventArgument <> String.Empty Then
                Dim varParams() As String = eventArgument.Split("@")
                Dim sr As New System.IO.StringWriter()
                Dim htm As New HtmlTextWriter(sr)
                _callbackArgument = ""
                Select Case varParams(0)
                    Case "divddlDepartamentos"
                        _callbackArgument = varParams(0).ToString + "|divddlDepartamentos|" + departamentos(Rubigeo.SeleccionarTodoXDepartamento(Me.Master.descEmpresa, True))
                    Case "divddlProvincia", "divddlProvinciaLaboral"
                        _callbackArgument = varParams(0).ToString + "|" + provincias(varParams(0), varParams(1), varParams(2))

                        'Case "divddlProvincia", "divddlProvinciaLaboral"
                        'Select Case varParams(0)
                        '    'Case "divddlProvincia"
                        '    'Me.ddlProvincia.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                        '    'Me.ddlProvincia.DataTextField = "descripcion"
                        '    'Me.ddlProvincia.DataValueField = "idUbigeo"
                        '    'Me.ddlProvincia.DataBind()
                        '    'Me.ddlProvincia.Value = varParams(2).ToString.Substring(2, 2)
                        '    'If varParams(1).Substring(0, 1).Equals("F") AndAlso Not varParams(1).Substring(1, 1).Equals("N") Then
                        '    '    Me.ddlProvincia.Disabled = True
                        '    'Else
                        '    '    Me.ddlProvincia.Disabled = False
                        '    'End If
                        '    'Me.ddlProvincia.RenderControl(htm)
                        '    Case "divddlProvinciaLaboral"
                        '        Me.ddlProvinciaLaboral.DataSource = Rubigeo.SeleccionarTodoXProvincia(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2))
                        '        Me.ddlProvinciaLaboral.DataTextField = "descripcion"
                        '        Me.ddlProvinciaLaboral.DataValueField = "idUbigeo"
                        '        Me.ddlProvinciaLaboral.DataBind()
                        '        Me.ddlProvinciaLaboral.Value = varParams(2).ToString.Substring(2, 2)
                        '        If varParams(1).Substring(0, 1).Equals("F") AndAlso Not varParams(1).Substring(1, 1).Equals("N") Then
                        '            Me.ddlProvinciaLaboral.Disabled = True
                        '        Else
                        '            Me.ddlProvinciaLaboral.Disabled = False
                        '        End If
                        '        Me.ddlProvinciaLaboral.RenderControl(htm)
                        'End Select
                        'htm.Flush()
                        '_callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlDistrito", "divddlDistritoLaboral"
                        _callbackArgument = varParams(0).ToString + "|" + distritos(varParams(0), varParams(1), varParams(2))

                        'Case "divddlDistrito", "divddlDistritoLaboral"
                        '    Select Case varParams(0)
                        '        Case "divddlDistrito"
                        '            Me.ddlDistrito.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                        '            Me.ddlDistrito.DataTextField = "descripcion"
                        '            Me.ddlDistrito.DataValueField = "idUbigeo"
                        '            Me.ddlDistrito.DataBind()
                        '            Me.ddlDistrito.Value = varParams(2).ToString.Substring(4, 2)
                        '            If varParams(1).Substring(0, 1).Equals("F") AndAlso Not varParams(1).Substring(1, 1).Equals("N") Then
                        '                Me.ddlDistrito.Disabled = True
                        '            Else
                        '                Me.ddlDistrito.Disabled = False
                        '            End If
                        '            Me.ddlDistrito.RenderControl(htm)
                        '        Case "divddlDistritoLaboral"
                        '            Me.ddlDistritoLaboral.DataSource = Rubigeo.SeleccionarTodoXDistrito(Me.Master.descEmpresa, True, varParams(2).ToString.Substring(0, 2), varParams(2).ToString.Substring(2, 2))
                        '            Me.ddlDistritoLaboral.DataTextField = "descripcion"
                        '            Me.ddlDistritoLaboral.DataValueField = "idUbigeo"
                        '            Me.ddlDistritoLaboral.DataBind()
                        '            Me.ddlDistritoLaboral.Value = varParams(2).ToString.Substring(4, 2)
                        '            If varParams(1).Substring(0, 1).Equals("F") AndAlso Not varParams(1).Substring(1, 1).Equals("N") Then
                        '                Me.ddlDistritoLaboral.Disabled = True
                        '            Else
                        '                Me.ddlDistritoLaboral.Disabled = False
                        '            End If
                        '            Me.ddlDistritoLaboral.RenderControl(htm)
                        '    End Select
                        '    htm.Flush()
                        '    _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divgvwLista"
                        Dim Proyecto As Int32
                        Proyecto = Me.Master.idProyecto
                        clientes = Rcliente.SeleccionarTodoMantedor(Me.Master.descEmpresa, False, Proyecto)
                        Session("lista") = clientes
                        Dim listaClientes = clientes
                        'Dim listaClientes = From c In clientes _
                        '                    Where c.idTpoPersona = 1 _
                        '                    Select c
                        If Not clientes Is Nothing Then
                            Me.gvwLista.DataSource = listaClientes
                            Me.gvwLista.DataBind()
                            Me.gvwLista.RenderControl(htm)
                        End If
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlTpoDcmtos"
                        _callbackArgument = varParams(0).ToString + "|divddlTpoDcmtos|" + tpoDcmtos(RtpoDcmto.SeleccionarTodoXEstado(Me.Master.descEmpresa, True))
                    Case "divddlSexos"
                        _callbackArgument = varParams(0).ToString + "|divddlSexos|" + sexos()
                    Case "divddlEstudio"
                        Me.selEstudios.DataSource = Restudio.SeleccionarTodoXestado(Me.Master.descEmpresa, True)
                        Me.selEstudios.DataTextField = "descEstudio"
                        Me.selEstudios.DataValueField = "idEstudio"
                        Me.selEstudios.DataBind()
                        Me.selEstudios.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlOcupacions"
                        _callbackArgument = varParams(0).ToString + "|divddlOcupacions|" + ocupacions(Rocupacion.SeleccionarXEstado(Me.Master.descEmpresa, True))
                    Case "divddlProfesion"
                        Me.selProfesion.DataSource = Rprofesion.SeleccionarXEstado(Me.Master.descEmpresa, True)
                        Me.selProfesion.DataTextField = "desProfesion"
                        Me.selProfesion.DataValueField = "idProfesion"
                        Me.selProfesion.DataBind()
                        Me.selProfesion.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlEstadoCivil"
                        Me.selEstadoCivil.DataSource = RestadoCivil.SeleccionarTodo(Me.Master.descEmpresa, True)
                        Me.selEstadoCivil.DataTextField = "desEstCivil"
                        Me.selEstadoCivil.DataValueField = "idEstCivil"
                        Me.selEstadoCivil.DataBind()
                        Me.selEstadoCivil.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divddlEstado"
                        Dim Eestado As New Ecommons
                        Me.selEstado.DataSource = Eestado.estado
                        Me.selEstado.DataTextField = "descripcion"
                        Me.selEstado.DataValueField = "codigo"
                        Me.selEstado.DataBind()
                        Me.selEstado.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = varParams(0).ToString + "|" + sr.ToString()
                    Case "divBuscar"
                        'Me.gvwLista.DataSource = Buscar(varParams(1).ToUpper.Trim)
                        Dim pCli As New Ecliente With {.filtro = varParams(1).ToUpper.Trim}
                        Dim Proyecto As Integer
                        Proyecto = Me.Master.idProyecto
                        clientes = Rcliente.BuscarMantedor(Me.Master.descEmpresa, False, pCli, Proyecto)
                        Session("lista") = clientes
                        Me.gvwLista.DataSource = clientes
                        'Me.gvwLista.DataSource = From c In clientes _
                        '                         Where c.idTpoPersona = 1 _
                        '                         Select Case c
                        Me.gvwLista.DataBind()
                        Me.gvwLista.RenderControl(htm)
                        htm.Flush()
                        _callbackArgument = "divgvwLista|" + sr.ToString()
                    Case "showDet"
                        Dim id As Int32 = CType(varParams(1), Int32)
                        clientes = Session("lista")
                        _callbackArgument = "detalle|showDet|Cliente [Modificar]|" + obttenerEdit(From c In clientes _
                                                                                                  Where c.idRelacion = id _
                                                                                                  Select c _
                                                                                                  Order By c.idTpoPersona)
                    Case "delete"
                        Dim pCliente As New Ecliente
                        With pCliente
                            .idCliente = CType(varParams(1), Int32)
                            .idUsuario = Me.Master.idUsuario
                        End With
                        Rcliente.EliminarMantenedor(Me.Master.descEmpresa, pCliente)
                End Select
            End If
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
#End Region

    Protected Sub btnExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExcel.Click
        clientes = Session("lista")
        'ventaDetalles = Session("ventasListaDetalle")
        If Not clientes Is Nothing Then
            Dim fileName As String = "ConsultaProforma{0}.xls"
            fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
            Dim Response As HttpResponse = HttpContext.Current.Response
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "UTF-8"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)

            Response.Write("Código") : Response.Write(vbTab)

            Response.Write("Nombre") : Response.Write(vbTab)
            Response.Write("Teléfonos") : Response.Write(vbTab)
            Response.Write("Email") : Response.Write(vbTab)
            Response.Write("Estado") : Response.Write(vbTab)
            Response.Write("Tipo de Persona") : Response.Write(vbTab)
            
            Response.Write(vbCrLf)

            Dim value As String
            Dim varIdCliente As Int32 = 0
            For Each cliente In clientes
                value = cliente.idCliente
                varIdCliente = cliente.idCliente
                Response.Write(value) : Response.Write(vbTab)

                value = cliente.nombre
                Response.Write(value) : Response.Write(vbTab)

                value = cliente.telefonoFijo
                Response.Write(value) : Response.Write(vbTab)

                value = cliente.email
                Response.Write(value) : Response.Write(vbTab)

                value = cliente.estado
                Response.Write(value) : Response.Write(vbTab)

                value = cliente.descTpoPersona
                Response.Write(value) : Response.Write(vbTab)

                Response.Write(vbCrLf)
                'End If
            Next
            Response.End()
        Else
            Dim jsMensaje As String = Nothing
            jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If

    End Sub
End Class
